#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
//int main()
//{
//	char arr1[20] = "xxxxxxxxx";
//	char arr2[] = "hello";
//	strcpy(arr1,arr2);
//	printf("%s", arr1);
//	return 0;
//}
//char *my_strcpy(char *dest, const char*src)
//{
//	char *ret = dest;
//	assert(dest != NULL);
//	assert(src != NULL);
//	while ((*dest++ = *src++))
//	{
//		;
//	}
//	return ret;
//}
//int main()
//{
//	char arr1[] = "xxxxxxxx";
//	char arr2[] = "abcd e";
//	char* ret = my_strcpy(arr1, arr2);
//	printf("%s", ret);
//}

//int main()
//{
//	char arr1[20] = "xxxxxxxxx";
//	char arr2[] = "abcde";
//	strncpy(arr1, arr2, 3);
//	printf("%s", arr1);
//	return 0;
//}
//char *my_strcat(char *dest, const char*src)
//{
//	char *ret = dest;
//	assert(dest != NULL);
//	assert(src != NULL);
//	while (*dest)
//	{
//		dest++;
//	}
//	while ((*dest++ = *src++))
//	{
//		;
//	}
//	return ret;
//}
//int main()
//{
//	char arr1[20] = "hello ";
//	char arr2[] = "wor";
//	strncat(arr1, arr2,5);
//	printf("%s", arr1);
//	return 0;
//
//}
//int my_strcmp(const char * src, const char * dest)
//{
//	int ret = 0;
//	assert(src != NULL);
//	assert(dest != NULL);
//	while ((*src - *dest)==0)
//	{
//		if (*dest == '\0')
//		{
//			return 0;
//		}
//		src++;
//		dest++;
//	}
//	return (int)*src - *dest;
//}
//int main()
//{
//	char arr1[] = "abcdef";
//	char arr2[] = "abczzz";
//	int ret = strncmp(arr1, arr2,3);
//	if (ret > 0)
//	{
//		printf("arr1>arr2");
//	}
//	else if (ret < 0)
//	{
//		printf("arr1<arr2");
//	}
//	else if (ret == 0)
//	{
//		printf("arr1=arr2");
//	}
//}
//char* my_strstr(const char * str1, const char * str2)
//{
//	char *cp = (char*)str1;
//	char *s1 = (char*)str1;
//	char* s2 = (char*)str2;
//	while(*cp)
//	{
//		s1 = cp;
//		s2 = (char *)str2;
//		while (*s1 && *s2 && (*s1==*s2))
//		{
//			s1++;
//			s2++;
//		}
//		if (*s2=='\0')
//			return cp;
//		cp++;
//	}
//	return NULL;
//}
//int main()
//{
//	char arr1[] = "abbbbccddeff";
//	char arr2[] = "cdde";
//	char* ret=my_strstr(arr1, arr2);
//	printf("%s", ret);
//	return 0;
//}

//int main()
//{
//	char str[] = "- This, a sample string.";
//	char * pch;
//	pch = strtok(str, " ,.-");
//	printf("%s\n", pch);
//	printf("%s\n", strtok(NULL, " ,.-"));
//	printf("%s\n", strtok(NULL, " ,.-"));
//	printf("%s\n", strtok(NULL, " ,.-"));
//	return 0;
//}
//#include<errno.h>
//int main()
//{
//	printf("%s\n", strerror(0));
//	printf("%s\n", strerror(1));
//	printf("%s\n", strerror(2));
//	printf("%s\n", strerror(3));
//	printf("%s\n", strerror(4));
//	printf("%s\n", strerror(5));
//}
//void * my_memcpy(void * dst, const void * src, size_t count)
//{
//	void * ret = dst;
//	assert(dst);
//	assert(src);
//	while (count--) {
//		*(char *)dst = *(char *)src;
//		dst = (char *)dst + 1;
//		src = (char *)src + 1;
//	}
//	return(ret);
//}
//void* my_memmove(void* dest, void* src, size_t num)
//{
//	void* ret = dest;
//	assert(dest);
//	assert(src);
//
//	if (dest < src)
//	{
//		while(num--)
//		{
//			*(char*)dest = *(char*)src;
//			dest = (char*)dest + 1;
//			src = (char*)src + 1;
//		}
//	}
//	else 
//	{
//		while (num--)
//		{
//			*((char*)dest + num) = *((char*)src + num);
//		}
//	}
//	return ret;
//}
//int main()
//{
//	int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
//	my_memmove(arr,arr+6,sizeof(int)*4);
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}

//int main()
//{
//	char buffer1[] = "abcdefg";
//	char buffer2[] = "abcdEFG";
//	int n=memcmp(buffer1, buffer2, sizeof(buffer1));
//	if(n>0)
//		printf("bufder1>buffer2");
//	else if(n<0)
//		printf("bufder1<buffer2");
//	else
//		printf("bufder1=buffer2");
//	return 0;
//}

int main()
{
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	memset(arr, 0, sizeof(int)* 10);
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}